package com.seanliao.nav.util;

import cn.hutool.core.util.StrUtil;
import lombok.experimental.UtilityClass;

import java.util.Collections;
import java.util.List;

/**
 * 公共工具类
 */
@UtilityClass
public class CommonUtil {

    /**
     * 标签解析
     *
     * @param tags 标签字符串 “&标签1&&标签2&”
     * @return 标签列表 [“标签1”, "标签2"]
     */
    public List<String> parseTags(String tags) {
        if (StrUtil.isBlank(tags)) {
            return Collections.emptyList();
        }
        tags = StrUtil.removePrefix(tags, "&");
        tags = StrUtil.removeSuffix(tags, "&");
        if (tags.isBlank()) {
            return Collections.emptyList();
        } else {
            return StrUtil.split(tags, "&&");
        }
    }

    /**
     * 生成标签串
     *
     * @param tagList 标签列表 [“标签1”, "标签2"]
     * @return 标签字符串 “&标签1&&标签2&”
     */
    public String genTags(List<String> tagList) {
        if (tagList == null) {
            tagList = Collections.emptyList();
        }
        List<String> sortedTagList = tagList.stream().sorted().toList();
        return "&" + StrUtil.join("&&", sortedTagList) + "&";
    }

}
